Skip to content

Improve async performance, allow specifying an executor#52

Merged
skeet70 merged 5 commits intomainfrom
29-improve-async-performance
Mar 24, 2026
Merged

Improve async performance, allow specifying an executor#52
skeet70 merged 5 commits intomainfrom
29-improve-async-performance

Conversation

@skeet70
Copy link
Copy Markdown
Member

@skeet70 skeet70 commented Mar 24, 2026

This fixes #29 and fixes #13.

#29 is fixed via creating a recursive thenCompose completableFuture chain, which checks the rust future and schedules a future check, allowing for full async performance on the Java side instead of blocking the thread.

#13 is fixed by changing the internal async call functions to take a executor (and use it for its *Async Java API calls), and then externally generating a version of each async function that takes an executor and passes it to the internal one. The current function signature is still generated, and it internally calls for the ForkJoinPool.commonPool() and passes that to the new method.

skeet70 added 3 commits March 24, 2026 11:18
To keep the Java thread as unblocked as possible.
Still keep the default of the `ForkJoinPool.commonPool` so there are no breaking changes.
@skeet70 skeet70 requested a review from a team as a code owner March 24, 2026 18:51
@skeet70 skeet70 requested review from giarc3 and removed request for a team March 24, 2026 18:51
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 24, 2026

File Coverage Lines
All files 90% 90%

Minimum allowed coverage is 0%

Generated by 🐒 cobertura-action against 467a7fe

skeet70 and others added 2 commits March 24, 2026 14:28
Co-authored-by: Craig Colegrove <34786857+giarc3@users.noreply.github.com>
@skeet70 skeet70 merged commit abbf199 into main Mar 24, 2026
7 checks passed
@skeet70 skeet70 deleted the 29-improve-async-performance branch March 24, 2026 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve callback interface performance (busy waiting) [SPIKE] Support specifying an Executor

3 participants